package bancosys.tec.persist.dao;

import jmine.tec.annotations.Unmodifiable;
import bancosys.tec.persist.Persistable;

/**
 * DAO simples para ser usado em lugares em que nao eh necessario escrever ou sobrescrever metodos de {@link BaseDAO}. Recebe no construtor
 * 
 * @author takeshi
 * @param <T> o tipo do {@link Persistable}
 */
@Unmodifiable
public class SimpleDAO<T extends Persistable> extends BaseDAO<T> {

    private final Class<? extends T> persistableClass;

    /**
     * C'tor
     * 
     * @param persistableClass the persistable class
     */
    public SimpleDAO(Class<? extends T> persistableClass) {
        super();
        this.persistableClass = persistableClass;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    protected Class<? extends T> getPersistableClass() {
        return this.persistableClass;
    }

}
